import asyncio
import time

from common.common_text import asyncio_progress_bar, non_asyncio_progress_bar


def non_coroutine_task(name):
    print(f"正在执行任务 {name}!")
    non_asyncio_progress_bar()  # 模拟一个耗时操作
    print(f"任务 {name} 已完成!\n")


def non_coroutine_tasks():
    # 创建多个非协程任务
    non_coroutine_task("A")
    non_coroutine_task("B")
    non_coroutine_task("C")


async def coroutine_task(name):
    print(f"正在执行任务 {name}!")
    await asyncio_progress_bar()  # 模拟一个耗时操作
    print(f"任务 {name} 已完成!\n")


async def coroutine_tasks():
    # 创建多个协程任务
    task1 = asyncio.create_task(coroutine_task("A"))
    task2 = asyncio.create_task(coroutine_task("B"))
    task3 = asyncio.create_task(coroutine_task("C"))

    # 等待所有任务完成
    await task1
    await task2
    await task3


if __name__ == '__main__':
    non_coroutine_start_time = time.time()
    non_coroutine_tasks()
    non_coroutine_stop_time = time.time()
    print(f"非协程任务执行时间: {non_coroutine_stop_time - non_coroutine_start_time:.2f} 秒")

    coroutine_start_time = time.time()
    asyncio.run(coroutine_tasks())  # 运行事件循环
    coroutine_stop_time = time.time()
    print(f"协程任务执行时间: {coroutine_stop_time - coroutine_start_time:.2f} 秒")
